tutorial-tip-background {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 20;
  pointer-events: none;
  opacity: 0;
  transition: opacity ease-in-out 250ms;
  background-color: rgba(0, 0, 0, 0.25);
  -webkit-mask-image: linear-gradient(to top, #fff 0%, #aaa 100%),
    url('');
  -webkit-mask-composite: xor;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%, 128px 128px;
}

tutorial-tip-background.visible {
  pointer-events: inherit;
  opacity: 1;
}

.tutorial-tip {
  position: absolute;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  display: inline-block;
  border: 2px solid white;
  cursor: pointer;
  pointer-events: none;
  z-index: 100;
  transform: translate3d(-50%, -50%, 0);
  background-image: -webkit-gradient(
    linear,
    0% 0%,
    0% 100%,
    from(rgb(241, 170, 211)),
    to(rgb(185, 59, 255))
  );
  opacity: 0;
  transition: opacity ease-out 100ms;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.tutorial-tip.visible {
  opacity: 1;
}

.tutorial-tip.visible:after {
  pointer-events: none;
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  content: '';

  border: 1px solid rgb(185, 59, 255);
  transform-origin: 0.4 0.4;

  animation: sonarEffect 3s ease-out 75ms;
  animation-iteration-count: infinite;
  animation-delay: 1s;
}

body.is-blurred .tutorial-tip.visible:after {
  animation: none;
}

@keyframes sonarEffect {
  0% {
    opacity: 0;
  }
  60% {
    opacity: 0;
  }
  65% {
    opacity: 0.5;
    transform: scale3d(1, 1, 1);
  }
  80% {
    opacity: 0.4;
    transform: scale3d(2.6, 2.6, 2.6);
  }
  100% {
    opacity: 0;
    transform: scale3d(3, 3, 3);
  }
}
